package com.ctshk.rpc.finance.service;


import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.finance.dto.advance.AdvancePaymentApplyDTO;
import com.ctshk.rpc.finance.dto.advance.AdvancePaymentApplyListDTO;
import com.ctshk.rpc.finance.req.advance.AdvancePaymentApplyAddReq;
import com.ctshk.rpc.finance.req.advance.AdvancePaymentApplyIdReq;
import com.ctshk.rpc.finance.req.advance.AdvancePaymentApplyListReq;
import com.ctshk.rpc.finance.req.advance.AdvancePaymentApprovalReq;
import com.ctshk.rpc.finance.req.bill.RollBackReq;

/**
 * <p>
 * 财务预收款申请表 服务类
 * </p>
 *
 * @author 谢涛
 * @since 2021-03-23
 */
public interface IFinanceAdvancePaymentApplyService {


    /**
     * 列表
     * @param req
     * @param currentUser
     * @return
     */
    Result<PageResponse<AdvancePaymentApplyListDTO>> list(AdvancePaymentApplyListReq req, TokenUser currentUser);

    /**
     * 申请
     * @param req
     * @return
     */
    Result add(AdvancePaymentApplyAddReq req);

    /**
     * 详情
     * @param req
     * @return
     */
    Result<AdvancePaymentApplyDTO> detail(AdvancePaymentApplyIdReq req);

    /**
     * 审批
     * @param req
     * @return
     */
    Result approval(AdvancePaymentApprovalReq req);

    /**
     * 撤回审批
     * @param req
     * @return
     */
    Result rollBack(RollBackReq req);
}
